﻿using CloudDiamonds.Models.Customer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Yunzuan.Foundation.Attributes;
using Yunzuan.Foundation.Entities;
namespace CloudDiamonds.Models.DBModels
{
    [Table(TableName = "yz_order_ring", PrimaryKey = "OrderID")]
    public class RingOrderInfo : BaseEntity
    {
        #region Private Properties
        private int orderID;
        private int? userID;  //销售
        private int? purchaseUserID; //采购
        private int? _customerID;
        private int? _orderStatus;
        private int? _paymentStatus;
        private int? _orderType;
        private string remarks;
        private string salesRemarks;
        private string goodsRemark;
        private string purchaseRemarks;
        private decimal confirmPrice;
        private DateTime? _addTime;
        private DateTime? _editTime;
        private DateTime? arrivalTime;
        private string shipNo; //出货单号
        private string shipRemarks; //出货备注
        private DateTime? shipTime; //出货时间
        private DateTime? payTime;
        private int? _receiptStatus;
        private short? _curType;//到货结算币种 1rmb 2usd 
        private DateTime? _recTime;    //支付时间       
        private decimal? _receiptPrice;
        private decimal? _purchaseRMB;//采购RMB
        private decimal? _priceUSD;
        private decimal? _purchaseExchangerate;
        private decimal? _freight;//运费 11-11 ?可空 无默认值的
        private decimal? _confirmusd;//卖出usd 01-11
        private decimal? _confirmdiscount; 
        private decimal? _salesExchangerate;

        //数据中心对应属性
        private string images; //图片文件名，“|”分隔，如：aaa.jpg|bbb.jpg|ccc.jpg
        private string material; //材质
        private string measurement; //尺寸
        private int process;//处理
        private string country; //国家
        private string state;//省
        private int type;// 类型（戒指、耳环等）
        private int mainShape;//主石形状
        private string remark;// 备注
        private int category; // tinyint(2) NOT NULL DEFAULT '0', 类别
        private int style; // tinyint(2) NOT NULL DEFAULT '0', 风格
        private string supplier; // varchar(20) NOT NULL DEFAULT '', 供应商，不用手动指定
        private string mainColor; // varchar(20) NOT NULL DEFAULT '', 主石颜色
        private string originSN; //varchar(20) NOT NULL DEFAULT '', 货号
        private decimal price; // decimal(12,3) NOT NULL DEFAULT '0.000', 价格
        private Int16 isStock; // tinyint(1) NOT NULL DEFAULT '0', 是否现货
        private string mainCertNo; // varchar(20) NOT NULL DEFAULT '', 主石证书号码
        private decimal? weight; // decimal(12,3) NOT NULL DEFAULT '0.000', 总重
        private string place; // varchar(10) NOT NULL DEFAULT '', 所在地
        private string certType; // varchar(10) NOT NULL DEFAULT '', 成品证书类型
        private decimal mainWeight; // decimal(12,3) NOT NULL DEFAULT '0.000', 主石重量
        private string mainClarity; // varchar(10) NOT NULL DEFAULT '', 主石净度
        private string mainCertType; // varchar(10) NOT NULL DEFAULT '', 主石证书类型
        private int sideType; // tinyint(2) NOT NULL DEFAULT '0', 副石类型
        private decimal sideWeight; // decimal(12,3) NOT NULL DEFAULT '0.000', 副石重量

        private int? id; //t ID
        private short onShelves; //是否上架
        private string series;//t varchar(20) NOT NULL DEFAULT '', 系列
        #endregion


        #region Public Properties


        /// <summary>
        /// 确认退点
        /// </summary>
        public decimal? Confirmdiscount
        {
            get { return _confirmdiscount; }
            set { this.ChangeNotify<decimal?>("Confirmdiscount", value, ref _confirmdiscount); }
        }
        /// <summary>
        /// OrderID.
        /// </summary>
        [Column(IsAutoIncrement = true)]
        public int OrderID
        {
            get
            {
                return orderID;
            }
            set
            {
                this.ChangeNotify<int>("OrderID", value, ref orderID);
            }
        }
        /// <summary>
        /// 运费￥ 11-11
        /// </summary>
        public decimal? Freight
        {
            //? 可空 无默认值的 11-11
            get { return _freight; }
            set
            {
                this.ChangeNotify<decimal?>("Freight", value, ref _freight);
            }
        }
        /// <summary>
        /// SalesExchangerate.
        /// </summary>
        public decimal? SalesExchangerate
        {
            get
            {
                return _salesExchangerate;
            }
            set
            {
                this.ChangeNotify<decimal?>("SalesExchangerate", value, ref _salesExchangerate);
            }
        }
        /// <summary>
        /// 卖出美金 2017-01-11
        /// </summary>
        public decimal? ConfirmUSD
        {
            get { return _confirmusd; }
            set { this.ChangeNotify<decimal?>("ConfirmUSD", value, ref _confirmusd); }
        }
        /// <summary>
        /// CurType 到货结算币种
        /// </summary>
        public short? CurType
        {
            get { return _curType; }
            set
            {
                this.ChangeNotify<short?>("CurType", value, ref _curType);
            }
        }
        public DateTime? RecTime
        {
            get { return _recTime; }
            set
            {
                this.ChangeNotify<DateTime?>("RecTime", value, ref _recTime);
            }
        } 
        /// <summary>
        /// ReceiptPrice
        /// </summary>
        public decimal? ReceiptPrice
        {
            get
            {
                return _receiptPrice;
            }
            set
            {
                this.ChangeNotify<decimal?>("ReceiptPrice", value, ref _receiptPrice);
            }
        }
        /// <summary>
        /// PurchaseExchangerate.
        /// </summary>
        public decimal? PurchaseExchangerate
        {
            get
            {
                return _purchaseExchangerate;
            }
            set
            {
                this.ChangeNotify<decimal?>("PurchaseExchangerate", value, ref _purchaseExchangerate);
            }
        }
        /// <summary>
        /// PurchaseRMB
        /// </summary>
        public decimal? PurchaseRMB
        {
            get
            {
                return _purchaseRMB;
            }
            set
            {
                this.ChangeNotify<decimal?>("PurchaseRMB", value, ref _purchaseRMB);
            }
        }
        /// <summary>
        /// PriceUSD.
        /// </summary>
        public decimal? PriceUSD
        {
            get
            {
                return _priceUSD;
            }
            set
            {
                this.ChangeNotify<decimal?>("PriceUSD", value, ref _priceUSD);
            }
        }



        public int? UserID
        {
            get { return userID; }
            set { this.ChangeNotify<int?>("UserID", value, ref userID); }
        }
        public int? PurchaseUserID
        {
            get { return purchaseUserID; }
            set { this.ChangeNotify<int?>("PurchaseUserID", value, ref purchaseUserID); }
        }
        

        public int? CustomerID
        {
            get
            {
                return _customerID;
            }
            set
            {
                this.ChangeNotify<int?>("CustomerID", value, ref _customerID);
            }
        }
        public int? OrderStatus
        {
            get
            {
                return _orderStatus;
            }
            set
            {
                this.ChangeNotify<int?>("OrderStatus", value, ref _orderStatus);
            }
        }
        public int? PaymentStatus
        {
            get
            {
                return _paymentStatus;
            }
            set
            {
                this.ChangeNotify<int?>("PaymentStatus", value, ref _paymentStatus);
            }
        }
        public int? OrderType
        {
            get
            {
                return _orderType;
            }
            set
            {
                this.ChangeNotify<int?>("OrderType", value, ref _orderType);
            }
        }

        public string Remarks
        {
            get
            {
                return remarks;
            }
            set
            {
                this.ChangeNotify<string>("Remarks", value, ref remarks);
            }
        }
        public string SalesRemarks
        {
            get
            {
                return salesRemarks;
            }
            set
            {
                this.ChangeNotify<string>("SalesRemarks", value, ref salesRemarks);
            }
        }

        public string GoodsRemark
        {
            get
            {
                return goodsRemark;
            }
            set
            {
                this.ChangeNotify<string>("GoodsRemark", value, ref goodsRemark);
            }
        }
        public string PurchaseRemarks
        {
            get
            {
                return purchaseRemarks;
            }
            set
            {
                this.ChangeNotify<string>("PurchaseRemarks", value, ref purchaseRemarks);
            }
        }

        /// <summary>
        /// 收款 已付未付付
        /// </summary>
        public int? ReceiptStatus
        {
            get { return _receiptStatus; }
            set { this.ChangeNotify<int?>("ReceiptStatus", value, ref _receiptStatus); }
        }  
        public decimal ConfirmPrice
        {
            get
            {
                return confirmPrice;
            }
            set
            {
                this.ChangeNotify<decimal>("ConfirmPrice", value, ref confirmPrice);
            }
        }

        public DateTime? AddTime
        {
            get
            {
                return _addTime;
            }
            set
            {
                this.ChangeNotify<DateTime?>("AddTime", value, ref _addTime);
            }
        }

        public DateTime? EditTime
        {
            get
            {
                return _editTime;
            }
            set
            {
                this.ChangeNotify<DateTime?>("EditTime", value, ref _editTime);
            }
        }
        public DateTime? ArrivalTime
        {
            get
            {
                return arrivalTime;
            }
            set
            {
                this.ChangeNotify<DateTime?>("ArrivalTime", value, ref arrivalTime);
            }
        } 
        
        public string ShipRemarks
        {
            get
            {
                return shipRemarks;
            }
            set
            {
                this.ChangeNotify<string>("ShipRemarks", value, ref shipRemarks);
            }
        }
        public string ShipNo
        {
            get
            {
                return shipNo;
            }
            set
            {
                this.ChangeNotify<string>("ShipNo", value, ref shipNo);
            }
        }
        public DateTime? ShipTime
        {
            get
            {
                return shipTime;
            }
            set
            {
                this.ChangeNotify<DateTime?>("ShipTime", value, ref shipTime);
            }
        }

        public DateTime? PayTime
        {
            get
            {
                return payTime;
            }
            set
            {
                this.ChangeNotify<DateTime?>("PayTime", value, ref payTime);
            }
        }
        //中心属性
        /////////属性部分
        public int Category
        {
            get
            {
                return category;
            }
            set
            {
                this.ChangeNotify<int>("Category", value, ref category);
            }
        }
        public int Style
        {
            get
            {
                return style;
            }
            set
            {
                this.ChangeNotify<int>("Style", value, ref style);
            }
        }

        public string Supplier
        {
            get
            {
                return supplier;
            }
            set
            {
                this.ChangeNotify<string>("Supplier", value, ref supplier);
            }
        }
        public string MainColor
        {
            get
            {
                return mainColor;
            }
            set
            {
                this.ChangeNotify<string>("MainColor", value, ref mainColor);
            }
        }


        public string OriginSN
        {
            get
            {
                return originSN;
            }
            set
            {
                this.ChangeNotify<string>("OriginSN", value, ref originSN);
            }
        }
        public decimal Price
        {
            get
            {
                return price;
            }
            set
            {
                this.ChangeNotify<decimal>("Price", value, ref price);
            }
        }
        public Int16 IsStock
        {
            get
            {
                return isStock;
            }
            set
            {
                this.ChangeNotify<Int16>("IsStock", value, ref isStock);
            }
        }
        public string MainCertNo
        {
            get
            {
                return mainCertNo;
            }
            set
            {
                this.ChangeNotify<string>("MainCertNo", value, ref mainCertNo);
            }
        }

        public decimal? Weight
        {
            get
            {
                return weight;
            }
            set
            {
                this.ChangeNotify<decimal?>("Weight", value, ref weight);
            }
        }
        public string Place
        {
            get
            {
                return place;
            }
            set
            {
                this.ChangeNotify<string>("Place", value, ref place);
            }
        }
        public string CertType
        {
            get
            {
                return certType;
            }
            set
            {
                this.ChangeNotify<string>("CertType", value, ref certType);
            }
        }


        public decimal MainWeight
        {
            get
            {
                return mainWeight;
            }
            set
            {
                this.ChangeNotify<decimal>("MainWeight", value, ref mainWeight);
            }
        }
        public string MainClarity
        {
            get
            {
                return mainClarity;
            }
            set
            {
                this.ChangeNotify<string>("MainClarity", value, ref mainClarity);
            }
        }
        public string MainCertType
        {
            get
            {
                return mainCertType;
            }
            set
            {
                this.ChangeNotify<string>("MainCertType", value, ref mainCertType);
            }
        }
        public int SideType
        {
            get
            {
                return sideType;
            }
            set
            {
                this.ChangeNotify<int>("SideType", value, ref sideType);
            }
        }
        public decimal SideWeight
        {
            get
            {
                return sideWeight;
            }
            set
            {
                this.ChangeNotify<decimal>("SideWeight", value, ref sideWeight);
            }
        }



        public short OnShelves
        {
            get
            {
                return onShelves;
            }
            set
            {
                this.ChangeNotify<short>("OnShelves", value, ref onShelves);
            }
        }
        public string Series
        {
            get
            {
                return series;
            }
            set
            {
                this.ChangeNotify<string>("Series", value, ref series);
            }
        }
        public int Process
        {
            get { return process; }
            set { this.ChangeNotify<int>("Process", value, ref process); }
        }
        public string Measurement
        {
            get { return measurement; }
            set { this.ChangeNotify<string>("Measurement", value, ref measurement); }
        }
        public string Country
        {
            get { return country; }
            set { this.ChangeNotify<string>("Country", value, ref country); }
        }
        public string State
        {
            get { return state; }
            set { this.ChangeNotify<string>("State", value, ref state); }
        }
        public int MainShape
        {
            get { return mainShape; }
            set { this.ChangeNotify<int>("MainShape", value, ref mainShape); }
        }
        public string Material
        {
            get { return material; }
            set { this.ChangeNotify<string>("Material", value, ref material); }
        }
        public string Remark
        {
            get { return remark; }
            set { this.ChangeNotify<string>("Remark", value, ref remark); }
        }
        public int Type
        {
            get { return type; }
            set { this.ChangeNotify<int>("Type", value, ref type); }
        }
        public string Images
        {
            get { return images; }
            set { this.ChangeNotify<string>("Images", value, ref images); }
        }
        public int? ID
        {
            get
            {
                return id;
            }
            set
            {
                this.ChangeNotify<int?>("ID", value, ref id);
            }
        }
        #endregion
    }
}
